﻿namespace SMSOverEmail
{
    using System.Collections.Generic;

    public enum Carrier
    {
        ATT,
        AirfireMobile,
        AlaskaCommunications,
        Alltel,
        Ameritech,        
        AppalachianWireless,
        ATTEnterprisePaging,
        BellSouth,
        BluegrassCellular,
        BlueskyCommunications,
        Boost,
        CBeyond,
        CellCom,
        CellularSouth,
        CentennialWireless,
        CharitonValleyWireless,
        CincinnatiBell,
        Cingular,
        Claro,
        Cleartalk,
        Cricket,
        CSpireWireless,
        EdgeWireless,
        ElementMobile,
        Esendex,
        GeneralCommunications,
        GoldenStateCellular,
        HawaiianTelcomWireless,
        Helio,
        iWirelessSprintAffiliate,
        iWirelessTMobileAffiliate,
        Kajeet,
        LongLines,
        MetroPCS,
        Nextech,
        Nextel,
        PagePlusCellular,
        PanaceaMobile,
        PocketWireless,
        QwestWireless,
        RedPocketMobile,
        Rogers,
        RoutoMessaging,
        SimpleMobile,
        SouthCentralCommunications,
        Southernlinc,
        Sprint,
        StraightTalkATT,
        StraightTalkTMobile,
        StraightTalkVerizon,
        SyringaWireless,
        Teleflip,
        TelusMobility,
        TMobile,
        TracFone,
        Unicel,
        USAMobility,
        USCellular,
        Verizon,
        Viaero,
        VirginMobile,
        Voyager,
        WestCentralWireless,
        XITCommunications
    }

    public class Carriers
    {
        /// <summary>
        /// The dictionary of email addresses to use for each carrier.  The format is #@Address.com.
        /// </summary>
        public Dictionary<Carrier?, string> Addresses = new Dictionary<Carrier?, string>
        {
            { Carrier.ATT, "#@txt.att.net" },
            { Carrier.Verizon, "#@vtext.com" },
            { Carrier.TMobile, "#@tmomail.net" },
            { Carrier.Sprint, "#@messaging.sprintpcs.com" },
            { Carrier.VirginMobile, "#@vmobl.com" },
            { Carrier.USCellular, "#@email.uscc.net" },
            { Carrier.Nextel, "#@messaging.nextel.com" },
            { Carrier.Boost, "#@myboostmobile.com" },
            { Carrier.Alltel, "#@message.alltel.com" },
            { Carrier.CBeyond, "#@cbeyond.sprintpcs.com" },
            { Carrier.GeneralCommunications, "#@mobile.gci.net" },
            { Carrier.BlueskyCommunications, "#@psms.bluesky.as" },
            { Carrier.GoldenStateCellular, "#@gscsms.com" },
            { Carrier.TelusMobility, "#@msg.telus.com" },
            { Carrier.Rogers, "#@pcs.rogers.com" },
            { Carrier.CincinnatiBell, "#@gocbw.com" },
            { Carrier.HawaiianTelcomWireless, "#@hawaii.sprintpcs.com" },
            { Carrier.iWirelessTMobileAffiliate, "#.iws@iwspcs.net" },
            { Carrier.iWirelessSprintAffiliate, "#@iwirelesshometext.com" },
            { Carrier.Claro, "#@vtexto.com" },
            { Carrier.Helio, "#@myhelio.com" },
            { Carrier.PocketWireless, "#@sms.pocket.com" },
            { Carrier.Voyager, "#@text.voyagermobile.com" },
            { Carrier.AirfireMobile, "#@sms.airfiremobile.com" },
            { Carrier.AlaskaCommunications, "#@msg.acsalaska.com" },
            { Carrier.Ameritech, "#@paging.acswireless.com" },
            { Carrier.ATTEnterprisePaging, "#@page.att.net" },
            { Carrier.BellSouth, "#@bellsouth.cl" },
            { Carrier.BluegrassCellular, "#@sms.bluecell.com" },
            { Carrier.CellCom, "#@cellcom.quiktxt.com" },
            { Carrier.CellularSouth, "#@csouth1.com" },
            { Carrier.CharitonValleyWireless, "#@sms.cvalley.net" },
            { Carrier.Cingular, "#@cingular.com" },
            { Carrier.Cleartalk, "#@sms.cleartalk.us" },
            { Carrier.Cricket, "#@sms.mycricket.com" },
            { Carrier.CSpireWireless, "#@cspire1.com" },
            { Carrier.EdgeWireless, "#@sms.edgewireless.com" },
            { Carrier.ElementMobile, "#@SMS.elementmobile.net" },
            { Carrier.Esendex, "#@echoemail.net" },
            { Carrier.Kajeet, "#@mobile.kajeet.net" },
            { Carrier.LongLines, "#@text.longlines.com" },
            { Carrier.MetroPCS, "#@mymetropcs.com" },
            { Carrier.Nextech, "#@sms.nextechwireless.com" },
            { Carrier.PagePlusCellular, "#@vtext.com" },
            { Carrier.QwestWireless, "#@qwestmp.com" },
            { Carrier.RedPocketMobile, "#@txt.att.net" },
            { Carrier.SimpleMobile, "#@smtext.com" },
            { Carrier.Southernlinc, "#@page.southernlinc.com" },
            { Carrier.SouthCentralCommunications, "#@rinasms.com" },
            { Carrier.StraightTalkATT, "#@txt.att.net" },
            { Carrier.StraightTalkTMobile, "#@mmst5.tracfone.com" },
            { Carrier.StraightTalkVerizon, "#@vtext.com" },
            { Carrier.SyringaWireless, "#@rinasms.com" },
            { Carrier.Teleflip, "#@teleflip.com" },
            { Carrier.Unicel, "#@utext.com" },
            { Carrier.USAMobility, "#@usamobility.net" },
            { Carrier.Viaero, "#@viaerosms.com" },
            { Carrier.WestCentralWireless, "#@sms.wcc.net" },
            { Carrier.XITCommunications, "#@sms.xit.net" },
            { Carrier.TracFone, "#@mmst5.tracfone.com" },
            { Carrier.CentennialWireless, "#@cwemail.com" },
            { Carrier.PanaceaMobile, "#@api.panaceamobile.com" },
            { Carrier.RoutoMessaging, "#@email2sms.routomessaging.com" },
            { Carrier.AppalachianWireless, "#@awsms.com" }
        };

        /// <summary>
        /// A Dictionary of the names of all the carriers.
        /// </summary>
        public Dictionary<Carrier?, string> CarrierNames = new Dictionary<Carrier?, string>
        {
            { Carrier.ATT, "AT&T Wireless" },
            { Carrier.Verizon, "Verizon Wireless" },
            { Carrier.TMobile, "T-Mobile" },
            { Carrier.Sprint, "Sprint PCS" },
            { Carrier.VirginMobile, "Virgin Mobile" },
            { Carrier.USCellular, "US Cellular" },
            { Carrier.Nextel, "Nextel Wireless" },
            { Carrier.Boost, "Boost Mobile" },
            { Carrier.Alltel, "Alltell" },
            { Carrier.CBeyond, "C Beyond" },
            { Carrier.GeneralCommunications, "General Communications Inc." },
            { Carrier.BlueskyCommunications, "Bluesky Communications" },
            { Carrier.GoldenStateCellular, "Golden State Cellular" },
            { Carrier.TelusMobility, "Telus Mobility" },
            { Carrier.Rogers, "Rogers Wireless" },
            { Carrier.CincinnatiBell, "Cincinnati Bell" },
            { Carrier.HawaiianTelcomWireless, "Hawaiian Telcom Wireless" },
            { Carrier.iWirelessTMobileAffiliate, "i wireless (T-Mobile Affiliate)" },
            { Carrier.iWirelessSprintAffiliate, "i-wireless (Sprint Affiliate)" },
            { Carrier.Claro, "Claro" },
            { Carrier.Helio, "Helio" },
            { Carrier.PocketWireless, "Pocket Wireless" },
            { Carrier.Voyager, "Voyager" },
            { Carrier.AirfireMobile, "Airfire Mobile" },
            { Carrier.AlaskaCommunications, "Alaska Communications" },
            { Carrier.Ameritech, "Ameritech" },
            { Carrier.ATTEnterprisePaging, "AT&T Enterprise Paging" },
            { Carrier.BellSouth, "BellSouth" },
            { Carrier.BluegrassCellular, "Bluegrass Cellular" },
            { Carrier.CellCom, "Cellcom" },
            { Carrier.CellularSouth, "Cellular South" },
            { Carrier.CharitonValleyWireless, "Chariton Valley Wireless" },
            { Carrier.Cingular, "Cingular" },
            { Carrier.Cleartalk, "Cleartalk" },
            { Carrier.Cricket, "Cricket" },
            { Carrier.CSpireWireless, "C Spire Wireless" },
            { Carrier.EdgeWireless, "Edge Wireless" },
            { Carrier.ElementMobile, "Element Mobile" },
            { Carrier.Esendex, "Esendex" },
            { Carrier.Kajeet, "Kajeet" },
            { Carrier.LongLines, "LongLines" },
            { Carrier.MetroPCS, "MetroPCS" },
            { Carrier.Nextech, "Nextech" },
            { Carrier.PagePlusCellular, "Page Plus Cellular" },
            { Carrier.QwestWireless, "Qwest Wireless" },
            { Carrier.RedPocketMobile, "Red Pocket Mobile" },
            { Carrier.SimpleMobile, "Simple Mobile" },
            { Carrier.Southernlinc, "Southernlinc" },
            { Carrier.SouthCentralCommunications, "South Central Communications" },
            { Carrier.StraightTalkATT, "Straight Talk (AT&T SIM)" },
            { Carrier.StraightTalkTMobile, "Straight Talk (T-Mobile SIM)" },
            { Carrier.StraightTalkVerizon, "Straight Talk (Verizon SIM)" },
            { Carrier.SyringaWireless, "Syringa Wireless" },
            { Carrier.Teleflip, "Teleflip" },
            { Carrier.Unicel, "Unicel" },
            { Carrier.USAMobility, "USA Mobility" },
            { Carrier.Viaero, "Viaero" },
            { Carrier.WestCentralWireless, "West Central Wireless" },
            { Carrier.XITCommunications, "XIT Communications" },
            { Carrier.TracFone, "TracFone" },
            { Carrier.CentennialWireless, "Centennial Wireless" },
            { Carrier.PanaceaMobile, "Panacea Mobile" },
            { Carrier.RoutoMessaging, "RoutoMessaging" },
            { Carrier.AppalachianWireless, "Appalachian Wireless" },
        };
    }
}